Skip to content

[16.0][ADD] digital_signature_kmitl: per-user digital signature with …#706

Open
madara1150 wants to merge 4 commits into
16.0from
16.0-add-digital_signature_kmitl
Open

[16.0][ADD] digital_signature_kmitl: per-user digital signature with …#706
madara1150 wants to merge 4 commits into
16.0from
16.0-add-digital_signature_kmitl

Conversation

@madara1150
Copy link
Copy Markdown
Collaborator

…work acceptance integration

  • digital_signature_kmitl: base module providing signature_image field on res.users with signature widget in user form and preferences
  • purchase_work_acceptance_signature_kmitl: snapshot signatures into work acceptance documents at approval time (tier validation + wizard flows)
    • responsible_signature: captured from procurement officer on button_accept
    • committee.signature_image: auto-captured from employee.user_id when status='accept'
    • PDF rendering via image_data_uri() with fallback to dotted lines
  • Immutable snapshot model ensures audit trail + unaffected by profile changes
  • Supports both paperless (tier validation) and paper (wizard) approval paths
  • Foundation for future rollout to other approval documents (PR, disbursement, budget)

madara1150 added 4 commits May 5, 2026 15:12
…work acceptance integration

- digital_signature_kmitl: base module providing signature_image field on res.users
  with signature widget in user form and preferences
- purchase_work_acceptance_signature_kmitl: snapshot signatures into work acceptance
  documents at approval time (tier validation + wizard flows)
  - responsible_signature: captured from procurement officer on button_accept
  - committee.signature_image: auto-captured from employee.user_id when status='accept'
  - PDF rendering via image_data_uri() with fallback to dotted lines
- Immutable snapshot model ensures audit trail + unaffected by profile changes
- Supports both paperless (tier validation) and paper (wizard) approval paths
- Foundation for future rollout to other approval documents (PR, disbursement, budget)
…onsible_id, simplify committee write, add logging

- Add guard check for empty responsible_id in button_accept to prevent AttributeError
- Refactor committee write(): capture signature after super().write() instead of
  pre-collecting IDs before — simpler and avoids stale-state edge cases
- Add _logger.warning() when signature capture fails silently (no user mapping,
  no signature_image set)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant